SRE-3988 ci: ucx-devel is used for mercury-ucx build. - #18949
Conversation
|
Errors are Unable to load ticket data |
|
Test stage Unit Test with memcheck completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-18949/1/testReport/ |
|
Test stage Functional on EL 9 completed with status UNSTABLE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net/job/daos-stack/job/daos//view/change-requests/job/PR-18949/6/testReport/ |
910691c to
5747dee
Compare
|
Test stage Test RPMs on Leap 15 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18949/11/execution/node/610/log |
8d69923 to
99af536
Compare
UCX is no longer built from source, the distribution provided packages are used instead Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>
Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>
2086d98 to
5b8cebe
Compare
Treat an absent ConnectX adapter as an expected condition during provisioning. Prevent the probe from triggering the ERR trap when no Mellanox hardware is present. Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com> Priority: 2
5b8cebe to
bff75f6
Compare
| reqs.define('ucx', | ||
| retriever=GitRepoRetriever(), | ||
| libs=['ucs', 'ucp', 'uct'], | ||
| # UCX is no longer built from source, the distribution provided packages are used instead. |
There was a problem hiding this comment.
Nit - IMO the comment should not say that UCX is "no longer built from source", but rather just state that it comes from the distribution. Because once this is landed, it is no longer a "change", it just simply "is".
There was a problem hiding this comment.
we need to keep that capability though for testing and debugging purposes so we can't just simply remove all that code. We need 3 things:
- be able to use the DOCA OFED UCX rpms
- be able to compile UCX from source
- be able to use an externally installed UCX path (hence why we need a single UCX package and not split them up as this was done in that PR)
| libs=['mercury'], | ||
| pkgconfig='mercury', | ||
| requires=['boost', 'ofi', 'ucx'] + libs, | ||
| requires=['boost', 'ofi', 'ucx_ucs', 'ucx_ucp', 'ucx_uct'] + libs, |
There was a problem hiding this comment.
We will need a way to conditionally build without UCX because we need to be able to build DAOS from source on systems that do not have or use UCX. For example, on aurora.
There was a problem hiding this comment.
yeah I have been working myself on adding a new option to be able to compile without UCX (out of scope of that PR). I don't think we should be separating UCX dependencies though. It should remain a single UCX package that has 3 libraries.
| libs=['mercury'], | ||
| pkgconfig='mercury', | ||
| requires=['boost', 'ofi', 'ucx'] + libs, | ||
| requires=['boost', 'ofi', 'ucx_ucs', 'ucx_ucp', 'ucx_uct'] + libs, |
There was a problem hiding this comment.
yeah I have been working myself on adding a new option to be able to compile without UCX (out of scope of that PR). I don't think we should be separating UCX dependencies though. It should remain a single UCX package that has 3 libraries.
| mercury=https://github.com/mercury-hpc/mercury.git | ||
| protobufc=https://github.com/protobuf-c/protobuf-c.git | ||
| ucx=https://github.com/openucx/ucx.git | ||
|
|
There was a problem hiding this comment.
we need to keep that in and still be able to build UCX from source when needed.
There was a problem hiding this comment.
The problem I have here is that we keep some configuration that will not be verified as soon as we start using OS provided ucx-devel in our CI.
Leaving as it is can be misinformative giving the impression that DAOS uses/requires this particular version of UCX, what is not true.
| reqs.define('ucx', | ||
| retriever=GitRepoRetriever(), | ||
| libs=['ucs', 'ucp', 'uct'], | ||
| # UCX is no longer built from source, the distribution provided packages are used instead. |
There was a problem hiding this comment.
we need to keep that capability though for testing and debugging purposes so we can't just simply remove all that code. We need 3 things:
- be able to use the DOCA OFED UCX rpms
- be able to compile UCX from source
- be able to use an externally installed UCX path (hence why we need a single UCX package and not split them up as this was done in that PR)
| libtool \ | ||
| libucp-devel \ | ||
| libucs-devel \ | ||
| libuct-devel \ |
There was a problem hiding this comment.
we should not be installing ucx everywhere either in my opinion unless the CI is requesting UCX testing. Maybe we need to revisit that once I've added the option to selectively compile UCX...
There was a problem hiding this comment.
The first goal of install-*.sh scripts is to setup DAOS development environment.
We need to install ucx-devel to be able to compile mercury without the need of building ucx from scratch every time.
There was a problem hiding this comment.
Someone must uninstall ucx-devel (libucp-devel,...) first, if he wants to build ucx from source code.
This reverts commit bf74dca. Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>
By default the mercury package is build against UCX package(s) delivered by OS. Uninstal ucx-devel/libucp-devel,libucs-devel,libuct-devel/libucx-dev to build UCX from source. Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com> Priority: 2
|
@daltonbohning @soumagne |
soumagne
left a comment
There was a problem hiding this comment.
I think we can try this approach, that looks reasonable to me. Thanks!
UCX is no longer built from source by default, the distribution provided packages are used instead.
Requires:
Steps for the author:
After all prior steps are complete: